package com.ruoyi.service;

import java.util.List;

import com.ruoyi.domain.ProApplicationPayment;

/**
 * 付款申请单Service接口
 *
 * @author ruoyi
 * @date 2020-06-23
 */
public interface IProApplicationPaymentService {
    /**
     * 查询付款申请单
     *
     * @param aId 付款申请单ID
     * @return 付款申请单
     */
    public ProApplicationPayment selectProApplicationPaymentById(Long aId);

    /**
     * 查询付款申请单
     *
     * @param aStatus 付款申请单 申请状态
     * @return 付款申请单
     */
    public ProApplicationPayment selectProApplicationPaymentByIds(int aStatus);

    /**
     * 查询付款申请单列表
     *
     * @param proApplicationPayment 付款申请单
     * @return 付款申请单集合
     */
    public List<ProApplicationPayment> selectProApplicationPaymentList(ProApplicationPayment proApplicationPayment);

    /**
     * 新增付款申请单
     *
     * @param proApplicationPayment 付款申请单
     * @return 结果
     */
    public int insertProApplicationPayment(ProApplicationPayment proApplicationPayment);

    /**
     * 修改付款申请单
     *
     * @param proApplicationPayment 付款申请单
     * @return 结果
     */
    public int updateProApplicationPayment(ProApplicationPayment proApplicationPayment);

    /**
     * 批量删除付款申请单
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteProApplicationPaymentByIds(String ids);

    /**
     * 删除付款申请单信息
     *
     * @param aId 付款申请单ID
     * @return 结果
     */
    public int deleteProApplicationPaymentById(Long aId);

    /**
     * 查询总项目下
     */
    List<ProApplicationPayment> selectProjectContractlists(Long sId);


    /**
     * 查询总项目下状态为结束的付款申请单
     */
    List<ProApplicationPayment> selectProjectContractlistsid(Long sId, Long id);

    /**
     * 导出
     *
     * @param proApplicationPayment 用户信息
     * @return 用户信息集合信息
     */
    public List<ProApplicationPayment> selectUserexport(ProApplicationPayment proApplicationPayment);


    /**
     * 提交审批到财务
     */
    int finExaStatus(Long aId);

    /**
     * 财务通过审批
     */
    int finExaStatuss(Long aId);

    /**
     * 驳回请假需求
     */
    int editparoStatus(Long aId);

    /**
     * 撤销请假申请
     */
    int revoExaStatus(Long aId);

    /**
     * 总经理通过申请
     */
    int fExaStatus(Long aId);

    /**
     * 结束流程
     */
    int over(Long aId);


}
